import { defineStore } from "pinia";
import { computed, ref } from "vue";

// 命名建议：use开头，Store结尾。
// defineStore参数：第一个是唯一的（自定义），第二个是一个对象{state}
export const useAgeStore = defineStore('danding', {
    state: () => {
        // return可以省略
        return {
            age: 30,
            name: "大宁"
        }
    },
    getters: {
        gettersAge(state) {
            return state.age + 5
        }
    },
    actions: {
        addAge() {
            // this指向本身的useAgeStore仓库
            this.age++
        }
    }
})

// 唯一的区别就是，defineStore的第二个参数是一个函数不是对象了
export const useCounterStore = defineStore('main', () => {
    const count = ref(10)
    const name = ref('Eduardo')
    const doubleCount = computed(() => count.value * 2)
    function increment() {
        count.value++
    }

    return { count, name, doubleCount, increment }
})